サービス監視・障害対応のポイント入門
はじめに
こんにちは。ネクストモード株式会社 のharuです。
ネクストモードではMackerelをベースとしたAWSの監視・障害対応を実施する「運用アシスタント」サービスを提供しており、私は該当サービスの企画担当者です。
監視・障害対応についてお客様からご相談を頂いている中で最近、AWSでシステム構築したんだけど運用って何すればいいのか分からず困っている、監視・障害対応の重要性を理解してもらえず困っているといったお話を伺いました。
私は前職、システムのオペレーションをしていたので監視・障害対応って大事だよねって思ってましたが、たしかに馴染みがない方はサービスの監視・障害対応って何があるの?オンプレミスなら物理ハードウェアがあるけどクラウドでも運用って必要なの?と思われるのかなっと感じ、今回、システムの監視・障害対応についてブログにしてみました。これからAWSを利用される予定の方、監視・障害対応等の運用について検討される方に参考にしていただければと思います。
1.監視から障害対応までのイメージ
サービス(システム)は構築して終わりではなく、提供し続ける必要がありますよね。
障害が発生してサービスが使えなくなったことをお客様・利用者からの申告で気づいてもいいサービスもあるかと思いますが、障害が発生したら(①監視)、サービスが使えないことに気づき(②検知)、気づいたらサービスが使えるようにします(③障害対応)。
原因調査なども必要ですが、まず優先すべきはサービス回復でなり、回復したら原因調査をすればいいと思っています。
1.システム停止したときの影響度は?
まずはシステムが停止したときにビジネスに与える影響を考えてみましょう。
例えば社内利用で数日停止してもビジネス影響・業務影響がなくゆっくり復旧対応すればいいものならば日中帯だけの運用で問題ないかも知れません。
一方、ECサイトなどでシステムが停止してしまうと販売逸失になってしまうものもあります。復旧した後にお客様が戻ってきてくれれば良いのですが、別のEC2サイトに行かれてしまうリスクもあります。そして夜間・深夜の方がアクセスが多い場合は24時間の対応が必要になってきます。
システムが停止したときの影響度に応じて必要な体制も変わってきますのでまずはここから考えて頂ければと思います。
2.監視とは?
システムは構築して終わりではなく、正常に使い続けられるように維持していく必要があります。
お客様から使えなくなったと申告がある前に気づく必要がありますし、障害が発生する前に予兆検知し未然に防ぐことも重要です。
そのために障害・障害になりそうな予兆検知を素早くするのが監視です。
そして監視は障害発生時のその瞬間だけのものではありません。継続的に監視することが重要で、障害時に普段の傾向とどう異なっているのか解析する、もしくはあるタイミングで定期的にアラートが出ているのかなどの確認が必要です。
例えばCPUの高負荷でアラートが出たとします。それが毎週決まった曜日の決まった時間でアラートが発生していた場合、その時間に何かあることが予測でき、調べた結果バッチが動いて一時的に高負荷状態で様子見でいいアラートとなるかもしれません。そうなった場合は該当日時のアラートは停止するなど不要なアラート抑止が出来ます。
日々どういったリソース状況なのか継続的に情報収集することも監視に含まれます。
3.障害対応とは?
「監視して障害検知すればこれで安心!」というわけではありません。
障害を検知したらミドルウェア・システム再起動などサービスを正常な状態に戻すための対応が必要です。
そして厄介なのが障害はいつ起きるか分かりません。このブログを読んでいただいているまさにこの瞬間に発生するかもしれません。夜間、深夜、土休日、年末年始・・・ビジネス影響度が大きいサービスの場合はいつ発生するか分からない障害に対して体制を検討する必要があります。
4.AWSにおける監視・障害対応とは?
「AWSでの障害ってAWSがやってくれるので自分たちで監視・障害対応って何するの?」って思っている方がいるかもしれませんがAWSはどこまでがAWSの責任で、どこからがお客様の責任なのか責任共有モデルを公開しています。
例えばEC2を構築した場合、OSやミドルウェア、アプリケーションはお客様側責任になります。
そのため、ミドルウェア/アプリケーションの監視・障害対応はお客様が実施する必要があります。AWSでシステム構築したら一切の監視・障害対応が無くなる訳はないのでご注意ください。
参考:AWSの責任共有モデル
https://aws.amazon.com/jp/compliance/shared-responsibility-model/
5.まとめ
システムは動いていて当たり前と思われがちですが、いざ障害が発生してサービスが停止すると大騒ぎになります。
障害に備えて「サービスが停止した場合のビジネスへの影響」、「影響に応じた体制整備」、「何を監視すべきか」、「復旧までの処置」を事前に検討することで、障害が発生した場合も慌てることなく措置が出来ます。
サービス停止したときの影響度は、提供しているサービス内容に依存するのでシステムの台数によらないと思います。
例えばWebシステムをAWSの数インスタンスで構築されている方は多いかと思いますが、数インスタンスでもビジネス影響度が大きい場合は障害に備えた24時間365日の体制が必要になってきます。社内内部で24時間365日の体制を整えるのは大変かと思いますが、弊社サービスの運用アシスタントは1インスタンスから24時間365日の障害対応までご提供させて頂いております。
24時間365日の障害対応から解放されたい方、不安がある方などお悩みがあればお気軽に弊社までご相談頂ければと思います。